草庐IT

c++ - DrawText VS TextOut Win32

全部标签

windows - Windows 7 格式化驱动器上的 FAT32 文件分配表大小超出 FAT32 规范

我正在编写一个嵌入式FAT32驱动程序。我有问题。我用零填充我的金士顿DTR30G2高达1GB,并将其插入Windows7盒子,并将其格式化为FAT32。然后,在我的Linux机器上,我将1GB的闪存转储到文件中并在十六进制编辑器中打开它并获得以下值:uint16_tBPB_ResvdSecCnt=32atoffset0xEuint8_tBPB_SecPerClus=8atoffset0xDuint8_tBPB_NumFATs=2atoffset0x10接下来,我查看FAT32卷ID中的扇区总数:uint32_tDskSize=30734336atoffset0x20和Linux报告一

windows - 需要从 32 位和 64 位机器 Windows 机器读取注册表值

我需要使用.cmd文件读取一些注册表值。为此,我正在使用以下命令。FOR/f"tokens=2*"%%ain('regquery"HKLM\SOFTWARE\Looptest"/v"tscFile"')doset"TSCFile=%%b"问题是,当我在32位机器上安装软件时,注册表的路径是:"HKLM\SOFTWARE\Looptest"而当我在64位机器上安装软件时,路径变为:"HKLM\SOFTWARE\Wow6432Node\Looptest"有没有办法在不知道操作系统版本的情况下读取key?当然我知道最初我可以检查操作系统版本,然后可以相应地编写代码。但是,除此之外,还有其他方

c - 如何将我的 iSCSIinitiator 连接到 Windows 中的 scsi 子系统

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我正在研究如何在Windows中使用C编写iSCSI启动器(例如Open-iSCSI(Linux)或StarwindiSCSI启动器(Windows))。我以前编写过一个iSCSI目标,现在我正在学习它的反面。我已经将大部分发起者编码为目标消息(登录、读/写等)。我现在的问题是如何将我的iSCSI启动器连接到Windows中的SCSI子系统,它负责发送要读/写的lba

c - 如何调用仅在特定操作系统版本中可用的 C 函数?

我正在使用“高级语言”(Nim)进行编程,出于性能原因,我必须“转向C”。我想做这样的事情:/*Pseudocode*/include/*...*/if(isWindows8OrGreater()){/**useInterlockedIncrementNoFence64()*/}else{/**useInterlockedIncrement64();(*/}但有人告诉我它会在Windows7上崩溃,因为如果我引用InterlockedIncrementNoFence64(),即使我不尝试调用它,它也必须可用。我正在编写一个多线程应用程序,通信是通过“消息”实现的(即使在同一线程内)。这

c - 如果WriteFile同步完成,是否发出信号通知事件

如果WriteFile函数同步完成并成功,则是否通过lpOverlapped参数传递了通过事件传递的信号?如果事件同步失败,是否会向事件发出信号?我已经打开了带有FILE_FLAG_OVERLAPPED标志的文件的句柄。我无法从文档中弄清楚这一点,也无法在代码中轻松地复制这种情况。 最佳答案 首先,这个问题不仅与WriteFile有关,而且与任何异步I/O函数有关-几乎所有获得OVERLAPPED结构指针的函数。因为为所有这些功能分配了IRP(I/O请求数据包)(在wdm.h中查看它的定义)。hEvent中的OVERLAPPED句柄

python - 键盘事件未使用 pywin32 发送到窗口

我写了一个代码,可以从我想要的任何程序中获取HWND。如果你问的话,这就是我得到hwnd的方式。以下代码应调出设备管理器并将向下箭头发送到程序。但它确实。它确实会调出设备管理器,但它不会向程序发送向下箭头键,至少没有任何react。如果我使用记事本窗口的hwnd代码更改hwndMain编号,则该代码确实有效并发送向下箭头键importwin32apiimportwin32conimportwin32guiimporttimehwndMain=133082hwndChild=win32gui.GetWindow(hwndMain,win32con.GW_CHILD)win32gui.Se

c - 为什么 scanf 会用 0 覆盖之前读取的 unsigned char 变量?

我尝试通过scanf读取几个unsignedchar值,发现了一些奇怪的错误。在scanf的第二次调用期间,第一个unsignedchar变量被0覆盖。但是编写scanf("%hhu",&second);将导致覆盖第二个unsignedchar变量。#includeintmain(void){unsignedcharfirst,second;printf("Typefirstunsignedcharvariable:");scanf("%hhu",&first);printf("first=%hhu\n",first);printf("Typesecondunsignedcharvar

python - 将文本编码为 win32api.SendMessage() 的 WPARAM

我正在尝试调用win32api.SendMessage()通过我的Python应用程序(即发送应用程序)。接收应用程序的API声明消息的格式为:::SendMessage(,,(WPARAM))然而,value实际上是3到4个字符(无空格)的字符串。我的问题win32api.SendMessage的正确使用方法是什么?,特别是关于value?我可以简单地输入字符串吗,如:win32api.SendMessage(,,"ABC")?或者我是否需要将字符串转换为WPARAM类型(如果需要,我该怎么做)?我一直在LinuxPython中进行开发,对Windows和C++的经验很少。非常感谢任

windows - 如何在 win32 上调试文件系统 "access denied"错误?

我现在在构建脚本上玩得很开心:我正在使用Waf来插入我们的构建过程,一切都很好,除了在Windows上,我在构建过程中遇到间歇性错误。错误基本上总是一种或另一种形式的“访问被拒绝”错误,与我在构建过程中创建的临时文件有关,以使某些工具能够运行并完成它的工作。例如,在运行NSIS之前要生成可执行安装程序,我必须将所有必需的文件“暂存”到构建目录并从那里运行命令。有时事情会按预期工作,但有时我会收到有关我复制的其中一个文件的错误报告,例如:文件:打开文件“Platform\\Win32\\lxml-2.2.1-py2.6-win32.egg”失败我花了很长时间试图找出问题所在,但这真的很难

windows - MSI 安装程序,64 位操作系统,写入\windows\system32\inetsrv 文件夹

在WindowsServer200864位上,我需要一个.msi安装程序文件来将一些文件写入\windows\system32\inetsrv文件夹。(这些文件是一些XML模式验证文件,C#XmlReaderSettings.Schema.Add()预计位于该文件夹中)。当安装程序运行时,文件最终位于\windows\SysWOW64\inetsrv文件夹中,而不是它们需要的位置。我试图让安装程序写入\windows\Sysnative文件夹,并且安装程序创建了一个具有该确切名称的文件夹,我没想到这是可能的。参见thispage有关抑制SysWOW64重定向的良好讨论。在Windows